package com.xwj.ioc;

/**
 * BeanPostProcessor接口是Spring对外拓展的接口之一，其主要用途提供一个机会，让开发人员能够插手bean的实例化过程
 * 通过该接口就可以在bean实例化时，对bean进行一些处理
 * 比如，AOP 就是在这里将切面逻辑织入相关bean中的
 * @author xwj
 * @date 2020/4/11
 */
public interface BeanPostProcessor {
    /**
     * bean实例化之前处理逻辑
     * @param bean
     * @param beanName
     * @return
     * @throws Exception
     */
    Object postProcessBeforeInitialization(Object bean, String beanName) throws Exception;

    /**
     * bean实例化之后处理逻辑
     * @param bean
     * @param beanName
     * @return
     * @throws Exception
     */
    Object postProcessAfterInitialization(Object bean, String beanName) throws Exception;
}
